forked from notahat/midi_patchbay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Read Me.html
374 lines (282 loc) · 10.9 KB
/
Read Me.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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
<html>
<head>
<!-- $Id: Read\040Me.html,v 1.5.2.4 2004/11/25 05:17:33 pete Exp $ -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MIDI Patchbay 1.0.2 by Pete Yandell</title>
<style type="text/css">
body {
background: #fff;
margin: 1.5em 3em;
}
#banner {
margin: 0;
padding: 0;
}
#banner span.site-name {
font-family: "Lucida Grande", Arial, sans-serif;
font-weight: normal;
font-size: 14px;
}
#contents {
width: 30%;
float: right;
font-family: "Lucida Grande", Arial, sans-serif;
font-weight: normal;
font-size: 11px;
border: 1px solid #ccc;
background: #fff;
margin: 0;
margin-left: 1.2em;
margin-bottom: 0.6em;
padding: 0.6em;
}
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, sans-serif;
font-weight: bold;
clear: both;
}
h1 {
font-size: 24px;
color: #800;
border-top: 1px solid #ccc;
margin-top: 0;
padding-top: 2px;
}
h1 span.note {
font-size: 14px
}
h2 {
font-size: 17px;
color: #036;
border-top: 1px solid #ccc;
margin-top: 25px;
padding-top: 2px;
}
h2 span.note {
font-size: 12px
}
h3 {
font-size: 14px;
color: #036;
}
p,ul,td {
font-family: "Lucida Grande", Verdana, sans-serif;
font-size: 13px;
line-height: 1.3em;
}
#footer {
text-align: center;
}
p.footer {
font-size: 11px;
}
</style>
</head>
<body>
<div id="banner">
<span class="site-name">Not A Hat</span>
</div>
<h1>MIDI Patchbay <span class="note">(Version 1.0.2)</span></h1>
<div id="contents">
Jump down to:<br />
<a href="#license">License</a><br />
<a href="#requirements">Requirements</a><br />
<a href="#usage">Using MIDI Patchbay</a><br />
<a href="#problems">Known Problems</a><br />
<a href="#future">Future Additions</a><br />
<a href="#credits">Credits</a><br />
<a href="#history">Version History</a>
</div>
<p>MIDI patchbay lets you hook up your various pieces of MIDI software and
hardware and pass MIDI data between them, applying assorted filters on the way.
Things like key splits, MIDI channel remapping, transposition, etc. are
made very simple.</p>
<h2><a name="license">License</a></h2>
<p>This software is distributed under the terms of <a href="License.html">Pete's Public
License</a>. It's free (as in beer) but the license sets out a few restrictions on
its distribution and modification.</p>
<p>If you use it I only ask for one thing:
<a href="mailto:[email protected]">send me an e-mail</a>. Tell me what
you use it for, anything you like and don't like, anything you'd like
to see in future versions, etc.</p>
<p>For other ways to reward me for producing this, see
<a href="http://www.notahat.com/software/">my web site</a>.</p>
<h2><a name="requirements">Requirements</a></h2>
<ul>
<li>Mac OS X 10.2 or later</li>
<li>A MIDI interface with OS X drivers</li>
<li>Other MIDI software such as a sequencer or soft synth</li>
</ul>
<p>If you're looking for MIDI interface drivers or audio and MIDI applications
for Mac OS X, check out my <a href="http://pete.yandell.com/links/">links page</a>.
<h2><a name="usage">Using MIDI Patchbay</a></h2>
<p>Each MIDI Patchbay document window is divided into two parts: a patch list
on the left and a set of patch controls on the right.</p>
<h3>The Patch List</h3>
<p>Each patch in the list represents a connection
between a MIDI input and MIDI output. The patch's input is shown on
the left of the arrow and the patch's output on the right.</p>
<p>Below each patch's
arrow is a description of the data passed by the patch and
any filters that are applied to the data.</p>
<p>Each patch also has a checkbox that can be used to enable or disable it.</p>
<p>New patches can be created with the "Add patch" button. MIDI Patchbay
tries to create new patches intelligently based on the currently selected
patch.</p>
<h3>The Patch Controls</h3>
<p>The patch controls configure the input, output and filters for the
currently selected patch.</p>
<p>The MIDI input and output for the patch can be selected from the
appropriate popup menus. As well as the MIDI interfaces connected to your
system, you can use the "Edit virtual inputs/outputs..." options to create
inputs and outputs that will be visible to other MIDI software.</p>
<p>Under the various tabs are options allowing you to filter the MIDI data
for the currently selected patch.</p>
<h3>Example: Creating a Keyboard Split</h3>
<ul>
<li>Create a new MIDI Patchbay document</li>
<li>Select the first patch in the list on the left</li>
<li>From the "MIDI Input" popup menu choose your MIDI interface</li>
<li>From the "MIDI Output" popup menu, select "Edit virtual outputs..."</li>
<li>Create a new output named "Example output" and click "OK"</li>
<li>Select "Example output" in the "MIDI Output" popup menu</li>
<li>
In the "Channels" tab, check the "Remap all data to MIDI channel:"
button and choose channel 1
</li>
<li>
In the "Notes" tab, check the "Only allow notes in the range:" button
and slide the lower slider until the note A4 is selected
</li>
<li>
Click the "Add Patch" button. Note that the new patch created is
intelligently based on the currently selected patch and already has
the other half of the keyboard selected as its range of filtered notes
and has its traffic remapped to channel 2.
</li>
<li>
Open your favourite synth software and select "Example Output" as
its MIDI input
</li>
</ul>
<p>Now any notes up to A4 will be sent your synth software's MIDI channel 1
and notes above A4 will go to channel 2.</p>
<h2><a name="problems">Known Problems</a></h2>
<h3>Creating a MIDI routing loop can crash OS X</h3>
<p>For example, creating a patch that receives from and sends to the one
IAC bus is a bad idea. As soon as MIDI data gets sent to that IAC bus the
entire computer will lock up.</p>
<p>You also have to be careful not to create indirect loops, as can
easily happen with Logic.</p>
<h3>Using MIDI Patchbay with Logic</h3>
<p>Using MIDI Patchbay with Logic can crash the computer, but the problem
is easily worked around.</p>
<p>If you open a default song in Logic it will open with a MIDI track
enabled as MIDI thru. The default MIDI instrument is set to ‘all’
for the OUT port.</p>
<p>If your MIDI Patchbay document contains a patch that routes from a
virtual input to a virtual output, this creates a MIDI routing loop.
Logic sends instrument settings into this loop at song-open and, hence,
a crash occurs.</p>
<p>You can work around it by first disabling the patches in MIDI Patchbay,
opening Logic and turning off MIDI Thru, and then re-enabling the patches
in MIDI Patchbay.</p>
<h3>MIDI and Classic</h3>
<p>Some people have reported problems when trying to use Classic and
a MIDI interface simultaneously. It seems that Classic will try to grab
control of USB devices. When using this software, you should make sure
that Classic is not running.</p>
<h3>Deleting virtual inputs and outputs</h3>
<p>Sometimes trying to delete a virtual input or output will give you
a message saying that the input or output is in use by a patch and can't
be deleted even when it isn't. Saving, closing and re-opening the
document will fix this.</p>
<h2><a name="future">Future Additions</a></h2>
<p>This is what's currently on my to do list for MIDI Patchbay in rough order
of priority:</p>
<ul>
<li>
Additional filters:
<ul>
<li>remapping of controller messages</li>
<li>bank select/program change messages</li>
<li>pitch bend data</li>
<li>mod wheel data</li>
<li>sysex data</li>
<li>delay MIDI data (build your own arpeggiator!)</li>
<li>transpose within a key (magic harmonies!)</li>
</ul>
</li>
<li>Copy and paste of patches</li>
<li>
Grouping of patches and assigning of keyboard/MIDI event
shortcuts to enable or disable groups for live use
</li>
<li>
Spiffier interface which takes up less screen space and
has neat ways of doing things like keyboard splits or
arpeggiation
</li>
</ul>
<h2><a name="credits">Credits</a></h2>
<p>The software was designed and written by
<a href="mailto:[email protected]">Pete Yandell</a>.</p>
<p>Thanks to Kevan Staples for generously donating the MIDI Patchbay icon.</p>
<p>Many, many thanks to Kurt Revis both for writing
<a href="http://www.snoize.com/MIDIMonitor/">MIDI Monitor</a>, without which testing
this thing would have been a nightmare, and for answering a million of my questions.
Without his help I would have struggled over the code for a lot longer.</p>
<h2><a name="history">Version History</a></h2>
<h3>Version 1.0.2 (???)</h3>
<ul>
<li>Added an icon generously provided by Kevan Staples.</li>
</ul>
<h3>Version 1.0.1 (13 January 2004)</h3>
<ul>
<li>Fixed bugs to do with handling of MIDI devices on OS X 10.3</li>
<li>
Fixed a major bug with undo handling that caused deleted patches
to invisibly hang around and keep working in certain circumstances
</li>
<li>
The default patch in an empty document will no longer use IAC bus
endpoints in order to avoid creating potential MIDI routing loops
</li>
<li>Text in the patch list gets an ellipsis on the end when truncated</li>
</ul>
<h3>Version 1.0 (1 February 2003)</h3>
<ul>
<li>Patch sets can be saved and loaded</li>
<li>Undo works</li>
<li>External device names as configured in Audio MIDI Setup are used when available</li>
<li>The interface now uses tabs, is a lot more compact and allows windows to be resized</li>
<li>Middle C is now displayed as C4 (rather than C5)</li>
</ul>
<h3>Version 0.2 (29 June 2002)</h3>
<ul>
<li>Virtual MIDI inputs and outputs can now be edited</li>
<li>
OS X 10.1.5 is now required, as this fixes a couple of MIDI bugs which
were causing grief, particularly with realtime data
</li>
<li>A switch to allow MIDI clock/realtime data through patches has been added</li>
<li>The MIDI channel filtering controls now work</li>
<li>The window now remembers its position between application restarts</li>
<li>Up and down arrow keys work in the list of patches</li>
<li>Patches can now be deleted</li>
<li>
Creating a new patch from a patch with a range filter set and an
upper note of G10 no longer causes errors
</li>
</ul>
<h3>Version 0.1 (21 February 2002)</h3>
<ul>
<li>initial release</li>
</ul>
<div id="footer">
<br /><br />
<p class="footer">Copyright © 2003-2004 <a href="mailto:[email protected]">Peter Yandell</a>.
All Rights Reserved.</p>
</div>
</body>
</html>