diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
index db16f5b673..35379d7a5e 100644
--- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
+++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
@@ -200,6 +200,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
@@ -2714,6 +2715,7 @@ set_source_files_properties(
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
index 95f1edbf37..d34954a154 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
@@ -326,6 +326,9 @@
true
+
+ true
+
true
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
index 04e36f7685..243b2c5399 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
@@ -1006,6 +1006,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
index 02fc1fd5ec..b862217d2c 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
@@ -326,6 +326,9 @@
true
+
+ true
+
true
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
index 8084fde482..0d8aaf63bc 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
@@ -1006,6 +1006,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
index bafd54c86a..682db777df 100644
--- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
@@ -155,6 +155,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
@@ -2352,6 +2353,7 @@ set_source_files_properties(
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
index 4290ef8670..bb4feb7fec 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
@@ -286,6 +286,9 @@
true
+
+ true
+
true
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
index 626d87b31e..6ee29f4608 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
@@ -823,6 +823,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
index 98ea7a339f..b4b8f706f5 100644
--- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
@@ -188,6 +188,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
@@ -2538,6 +2539,7 @@ set_source_files_properties(
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
index 918f702561..bc03d70f9f 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
@@ -294,6 +294,9 @@
true
+
+ true
+
true
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
index ae9e757988..116cf3c080 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
@@ -898,6 +898,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
index 7d1b9a76db..6ddce8d84f 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
@@ -294,6 +294,9 @@
true
+
+ true
+
true
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
index 26a29b6fc3..08e12d981f 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
@@ -898,6 +898,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
index 7ad6cfa0c8..984b630ad2 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
@@ -159,6 +159,7 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
@@ -2436,6 +2437,7 @@ set_source_files_properties(
"../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h"
"../../../../../modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h"
+ "../../../../../modules/juce_audio_devices/midi_io/juce_MidiDeviceListConnectionBroadcaster.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiDevices.h"
"../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
index 32fc1a676b..3569fecde8 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
@@ -286,6 +286,9 @@
true
+
+ true
+
true
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
index beb9c0a58d..259e43ed02 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
@@ -853,6 +853,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
index 8180120226..47d67d5b44 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
@@ -302,6 +302,9 @@
true
+
+ true
+
true
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
index c2957386b4..43aedc6ab7 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -919,6 +919,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
index 8c74cb742d..3159363a5a 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
@@ -302,6 +302,9 @@
true
+
+ true
+
true
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
index a35fa3cb88..f2c1c612b7 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -919,6 +919,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
index fc0ea41922..283f2ea7c9 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
@@ -285,6 +285,9 @@
true
+
+ true
+
true
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
index 137fe0d0e6..5c908a7ecc 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
@@ -850,6 +850,9 @@
JUCE Modules\juce_audio_devices\audio_io
+
+ JUCE Modules\juce_audio_devices\midi_io
+
JUCE Modules\juce_audio_devices\midi_io