-
Notifications
You must be signed in to change notification settings - Fork 0
/
mac-os-midi-router-broken.html
232 lines (196 loc) · 7.9 KB
/
mac-os-midi-router-broken.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2024-09-08 Sun 21:40 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Mac OS X Sonoma midi router is broken.</title>
<meta name="generator" content="Org Mode" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="index.css">
<meta name="author" content="Wade Mealing" />
<meta name="description" content="Actual midi routing in osx." />
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; img-src https://*; child-src 'none';" />
</head>
<body>
<div id="content" class="content">
<h1 class="title">Mac OS X Sonoma midi router is broken.</h1>
<div id="outline-container-org2a2101c" class="outline-2">
<h2 id="org2a2101c">Summary:</h2>
<div class="outline-text-2" id="text-org2a2101c">
<p>
How to connect a USB midi keyboard (Minilab3) to a synthesizer (KO2) using
a USB MIDI host.
</p>
</div>
</div>
<div id="outline-container-org6475918" class="outline-2">
<h2 id="org6475918">Introduction</h2>
<div class="outline-text-2" id="text-org6475918">
<p>
I believed there should be a method of connecting two digital musical instruments
together via USB. This shouldn't be too much to ask. The Musical Instrument
Digital Interface (MIDI) protocol allows computers, musical instruments and
other hardware to be controlled/synced with other devices.
</p>
<p>
In the days of old, MIDI devices had their own DIN (ROUND) style plugs where
you would connect the devices together. While industrial looking they required
connecting to a computers "Sound Card" which may or may not have had a matching
MIDI connection.
</p>
<p>
Everyone got mad with the permutations of connectors on these older systems,
(MIDI Included), and USB was heralded as the next step forward in Serial Bus
technology. A USB Midi standard happened, and that brings you to my recent
two purchases:
</p>
</div>
<div id="outline-container-orgc9b6b87" class="outline-3">
<h3 id="orgc9b6b87">ARTURIA Minilab 3</h3>
<div class="outline-text-3" id="text-orgc9b6b87">
<p>
A compact MIDI controller known for its versatility and tactile feel, offering
an array of pads, knobs, and keys for expressive performance.
</p>
</div>
</div>
<div id="outline-container-org4f087a0" class="outline-3">
<h3 id="org4f087a0">KO2 Sampler Composer</h3>
<div class="outline-text-3" id="text-org4f087a0">
<p>
A powerful sampler and composer, capable of transforming MIDI input into
rich, textured soundscapes and melodies. Its the new kid on the block.
</p>
<p>
The ARTURIA has only ONE USB PORT, its USB-C and takes power over this port
as well. Some people reccomend getting a powered "USB HUB", I happened to have
a usb hub, and it didnt seem to work.
</p>
<p>
The next option that I had was to use a real computer as a host. I had a friend
reccomend using a "Mac laptop" as the "USB MIDI host" which would route the
MIDI data when configured. He stated "The musicians all use macs! it must work
well, otherwise they wouldnt use it."
</p>
<p>
Fortunately, I had access to one a mac running Sonoma (10.14.1). I plugged
both of these devices into the laptop and tried to see if it would automatically
route data between the two.
</p>
<p>
It did not. I could however see in "Garage Band" that multiple new midi device
was available. When pressing the keys on the keyboard (and with a bit of
configuration on the KO2, I was able to see midi events flow from each device
to the host.
</p>
<p>
Apple suggests using the MIDI STUDIO built into OSX to be able to route midi events. I dont know
if this ever worked, but its not working for me.
</p>
<p>
I systematically tried every possible permutation of devices being connected, disabled, enabled, restarted
and rebooted just to make sure there wasn't anything odd.
</p>
<p>
Below is an example of the routing that I had expected to work (IT DOES NOT).
</p>
<div id="orgb50ddbd" class="figure">
<p><img src="./images/apple-midi-studio-routing-broken.png" alt="apple-midi-studio-routing-broken.png" width="800px" />
</p>
<p><span class="figure-number">Figure 1: </span>Broken midi studio in osx.</p>
</div>
<p>
Are my expections insane, other people apparently have done this ? <a href="https://support.apple.com/en-au/guide/audio-midi-setup/ams875bae1e0/mac">Apple</a> apparently believe
that its possible (Although I reckon they've somehow fucked this up).
</p>
<p>
I began to question my sanity, there were many people online who believe this work. Surely
this has not slipped thorugh the cracks of Quality Assurance of one of the more profitable
software companies in the world. However I assure you that it appears that it does.
</p>
</div>
</div>
</div>
<div id="outline-container-orgf6c4bd3" class="outline-2">
<h2 id="orgf6c4bd3">What to do ?</h2>
<div class="outline-text-2" id="text-orgf6c4bd3">
<p>
I was told that there was some software that may help. It was spoken about in hushed tones.
The software was named "MIDI PATCHBAY", Which sounds like exactly what I needed. I had an
internal visualization of an ethernet switch patch bay routing things, this sounded good.
</p>
<p>
So, I hit up "brew", big miss.
</p>
<p>
I visited github, and found <a href="https://github.com/notahat/midi_patchbay">midi patch bay</a> by notahat, no updates for 5 years. I tried one of the
releases and Mac OS complained that the binary was damaged (Narrator: it wasn't)
</p>
<p>
<a href="https://github.com/axmonti/midi_patchbay">Another programmer</a> forked this and made some minor improvements. This has no "github releases"
so there is no downloadable pre-built packages.
</p>
<p>
Fortunately, I looked at the social network of this fork and found that yet another hacker has
picked it up and forked it as <a href="https://github.com/yaros-eu/midi_router">MIDI router</a>. This is where the gold is. It even has a "release"
on gitlab, THANK YOU yaros-eu.
</p>
<p>
I fired up the app with low expectations, Mac OSX midi studio has beaten that out of me.
It is a tiny app weighing in at 143,897 bytes unpacked, natively built for Apple Silicon.
</p>
<p>
It was simple, elegant and most importantly.. it worked.
</p>
<p>
You can add a route with the button named "Add New Route". Check out this beautiful app.
</p>
<div id="org89c5baf" class="figure">
<p><img src="./images/midi-router.png" alt="midi-router.png" width="800px" />
</p>
<p><span class="figure-number">Figure 2: </span>Working application to route midi.</p>
</div>
<p>
Click either of the "Input" or "Output" drop downs and it will present the current
devices on the midi bus. Tick the route to enable, untick it to disable.
</p>
<p>
It is possible to route multiple devices to a single output. Now when I press keys on the Minilab3
the midi events are sent through to the KO2 and it works.
</p>
</div>
</div>
<div id="outline-container-org66623b8" class="outline-2">
<h2 id="org66623b8">Conclusion</h2>
<div class="outline-text-2" id="text-org66623b8">
<p>
Apple OSX midi configuration software is likely broken, I found "Midi router" that seems to route midi
messages. It works great.
</p>
</div>
</div>
<div id="outline-container-org37e9dd8" class="outline-2">
<h2 id="org37e9dd8">Resources:</h2>
<div class="outline-text-2" id="text-org37e9dd8">
<p>
<a href="https://github.com/yaros-eu/midi_router/tree/master">Midi Router</a>
</p>
<p>
<a href="https://en.wikipedia.org/wiki/MIDI">MIDI (wikipedia)</a>
</p>
<p>
<a href="https://www.makeuseof.com/using-a-linux-daw-with-a-usb-connected-midi-keyboard/">Using a Linux DAW With a USB-Connected MIDI Keyboard</a>
</p>
<p>
<a href="https://www.youtube.com/watch?v=JYslZkc90GI">Programming with midi</a>
</p>
</div>
</div>
</div>
</body>
</html>