diff --git a/NEWS b/NEWS
index f8ec01980..c1cf72471 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 ver 0.20 (not yet released)
+* output
+  - pulse: set channel map to WAVE-EX
 
 ver 0.19.2 (not yet released)
 * decoder
diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx
index 120bad090..5dc733383 100644
--- a/src/output/plugins/PulseOutputPlugin.cxx
+++ b/src/output/plugins/PulseOutputPlugin.cxx
@@ -523,7 +523,11 @@ pulse_output_setup_stream(PulseOutput *po, const pa_sample_spec *ss,
 	assert(po != nullptr);
 	assert(po->context != nullptr);
 
-	po->stream = pa_stream_new(po->context, po->name, ss, nullptr);
+	/* WAVE-EX is been adopted as the speaker map for most media files */
+	pa_channel_map chan_map;
+	pa_channel_map_init_auto(&chan_map, ss->channels,
+				 PA_CHANNEL_MAP_WAVEEX);
+	po->stream = pa_stream_new(po->context, po->name, ss, &chan_map);
 	if (po->stream == nullptr) {
 		SetError(error, po->context, "pa_stream_new() has failed");
 		return false;