diff --git a/astro.config.mjs b/astro.config.mjs
index a4e10d9..b73729f 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -45,6 +45,11 @@ export default defineConfig({
collapsed: true,
autogenerate: { directory: 'modules/http' }
},
+ {
+ label: "MIDI",
+ collapsed: true,
+ autogenerate: { directory: 'modules/midi' }
+ },
]
},
{
diff --git a/src/content/docs/modules/midi/input.mdx b/src/content/docs/modules/midi/input.mdx
new file mode 100644
index 0000000..c594e15
--- /dev/null
+++ b/src/content/docs/modules/midi/input.mdx
@@ -0,0 +1,26 @@
+---
+title: MIDI Input
+sidebar:
+ order: 1
+---
+
+import { Aside } from '@astrojs/starlight/components';
+
+
+
+The `midi.input` module connects to a midi device (or virtual device) and emits MIDI messages that come in on that port. This module does not output any message and so using it as an `output` of a [route](/concepts/routes) would be pointless.
+
+- **type**: `midi.input`
+- **params**:
+ - **port**: name of the MIDI port to connect to
+
+### Example
+Open a MIDI connection to `Logic Pro Virtual Out`.
+```
+- id: midiInput
+ type: midi.input
+ params:
+ port: "Logic Pro Virtual Out"
+```
\ No newline at end of file
diff --git a/src/content/docs/modules/midi/output.mdx b/src/content/docs/modules/midi/output.mdx
new file mode 100644
index 0000000..354f891
--- /dev/null
+++ b/src/content/docs/modules/midi/output.mdx
@@ -0,0 +1,25 @@
+---
+title: MIDI Output
+sidebar:
+ order: 2
+---
+import { Aside } from '@astrojs/starlight/components';
+
+
+
+The `midi.output` module connects to a midi device (or virtual device) and allows sending MIDI messages out to that device. This module does not receive any message and so using it as an `input` to a [route](/concepts/routes) would be pointless.
+
+- **type**: `midi.output`
+- **params**:
+ - **port**: name of the MIDI port to connect to
+
+### Example
+Open a MIDI connection to `Logic Pro Virtual In`.
+```
+- id: midiOutput
+ type: midi.output
+ params:
+ port: "Logic Pro Virtual In"
+```
\ No newline at end of file