diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9bce6af
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+xcuserdata
diff --git a/BUGS.md b/BUGS.md
new file mode 100644
index 0000000..f0d679d
--- /dev/null
+++ b/BUGS.md
@@ -0,0 +1,30 @@
+MIDI Patchbay Bugs
+==================
+
+Open
+----
+
+* MIDI inputs and outputs are sorted alphabetically rather than by port number.
+
+* Sometimes virtual endpoints can't be deleted even when no patch is obviously using them because an old patch can be sitting on the undo stack. The way to fix this is that patches that are in limbo should unregister themselves with the endpoints with which they are talking.
+
+* Creating a document, creating a virtual input or output then hitting undo will not reset the document saved flag for some reason. It has something to do with the undo grouping used by the virtual endpoint sheet, because if I disable that the problem goes away.
+
+* Creating a MIDI routing loop will crash the OS! It's really easy to do on Panther with IAC busses.
+
+* Select All in the Edit menu is enabled when editing the patch list despite the fact that only one patch can be selected at a time
+
+* Running an old version of MIDI Patchbay will show Open Recent menu items from the new version even if the old version doesn't support files
+
+* Start a new document, create a new virtual input, hit undo...the document is still marked as changed and requiring saving. (Maybe this has to do with the use of undo groups?)
+
+* Choosing the "Edit Virtual Inputs/Outputs..." options from the input or output popup menus will briefly cause this to become the selected item, and will only flick back to the real selected item after a second or so. It's very annoying visually.
+
+* Moving the lowest allowed note or highest allowed note sliders will cause a lot of undo events to be registered, which is a bit of a waste of memory.
+
+Closed
+------
+
+* There *may* be problems when multiple inputs are patched through to a single real output. If you see issues in this situation, please report them. This should not happen under OS X 10.1.5 or later.
+
+_$Id: Bugs.html,v 1.2.2.2 2004/11/25 04:38:48 pete Exp $_
diff --git a/Base.lproj/MainMenu.nib/designable.nib b/Base.lproj/MainMenu.nib/designable.nib
new file mode 100644
index 0000000..f1b8717
--- /dev/null
+++ b/Base.lproj/MainMenu.nib/designable.nib
@@ -0,0 +1,224 @@
+
+
$Id: Bugs.html,v 1.2.2.2 2004/11/25 04:38:48 pete Exp $
- - - \ No newline at end of file diff --git a/Controller Classes/EndpointTableDataSource.h b/Controller Classes/EndpointTableDataSource.h index 7b24e91..1f15659 100644 --- a/Controller Classes/EndpointTableDataSource.h +++ b/Controller Classes/EndpointTableDataSource.h @@ -1,15 +1,14 @@ #importThanks to Kevan Staples for the icon.
+ -Copyright © 2003-2008 Peter Yandell
+Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+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.
- - -This software is distributed under the terms of Pete's Public -License. It's free (as in beer) but the license sets out a few restrictions on -its distribution and modification.
- -If you use it I only ask for one thing: -send me an e-mail. Tell me what -you use it for, anything you like and don't like, anything you'd like -to see in future versions, etc.
- -For other ways to reward me for producing this, see -my web site.
- - -If you're looking for MIDI interface drivers or audio and MIDI applications -for Mac OS X, check out my links page. - - -
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.
- -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.
- -Below each patch's -arrow is a description of the data passed by the patch and -any filters that are applied to the data.
- -Each patch also has a checkbox that can be used to enable or disable it.
- -New patches can be created with the "Add patch" button. MIDI Patchbay -tries to create new patches intelligently based on the currently selected -patch.
- - -The patch controls configure the input, output and filters for the -currently selected patch.
- -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.
- -Under the various tabs are options allowing you to filter the MIDI data -for the currently selected patch.
- - -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.
- - -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.
- -You also have to be careful not to create indirect loops, as can -easily happen with Logic.
- - -Using MIDI Patchbay with Logic can crash the computer, but the problem -is easily worked around.
- -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.
- -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.
- -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.
- - -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.
- - -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.
- - -This is what's currently on my to do list for MIDI Patchbay in rough order -of priority:
- -The software was designed and written by -Pete Yandell.
- -Thanks to Kevan Staples for generously donating the MIDI Patchbay icon.
- -Many, many thanks to Kurt Revis both for writing -MIDI Monitor, 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.
- - -$Id: To\040Do.html,v 1.2.2.1 2004/01/12 12:18:01 pete Exp $
- - - \ No newline at end of file diff --git a/View Classes/KeyTableView.h b/View Classes/KeyTableView.h index 56d039a..53e6a7a 100644 --- a/View Classes/KeyTableView.h +++ b/View Classes/KeyTableView.h @@ -1,19 +1,18 @@ #import