MIDI Companion

Welcome to the Mac OS X version of the Kurzweil Companion!

13 August 2014 - I have not updated this product in quite a while, It does not work on latest machines and OS's. I do not know if I will ever update it. Check here every 6 months.....

The Companion is back, and better than ever. Mac OS X is a much more stable platform for MIDI and Audio, and the Companion is your rock-solid connection to your Kurzweil.

This version fills in the two core things the Companion is for, remotely controlling your Kurzweil and keeping a handly list of Kurzweil objects on your computer. And this is just the start!

By the way, I need some feedback on your use of the Companion. I added things like scripting, keyboard window, ribbon and X-Y controllers because I thought they might be useful. And they were in 1998. But sequencers have advanced quite a bit, and parameter automation is done well by every sequencer, so I do not think I will be bringing those features forward into Mac OS X, they just are no longer needed. The Kurzweil object list and other things are coming forward, of course, and new stuff!

And, of course, I need bug reports!

Let me know what you need, use, or miss and I'll try and make it happen. feedback@ravenware.com

C.K. Haun, February 2005

Version 2.0 release 1, 28 February 2005 DOWNLOAD


Note: No Windows version now or ever, please don't ask.
System requirments: The Companion was developed and tested on Mac OS X version 10.3 and later, and that is the only version of the OS assured compatability. It may work on prior versions, we have not tested that.
The Mac OS 9 and prior version is still available, and always will be. Download here. System requirements: Any Macntosh running System 7.5 or later (68K or PowerPC). The Companion works with the OMS MIDI software package (freely available from OpCode) or the latest FreeMIDI in OMS emulation mode from MOTU. A two-way MIDI connection between your Mac and K2500/K2600.

Table of Contents


Data Wheel



Master Object List


Adding Comments!


Exporting Object Names

Ribbon Controller basics

User Object Lists

Customizing the Ribbon

Control Panel Basics

X-Y Controller basics

Customizing the Control Panel


Windows and Startup


Keyboard control





What is it?

The MIDI Companion is your remote interface to the best keyboards in existence, the Kurzweil K2500/K2600/K2661! And witht he Mac OS X version, it will be expanding to other synths!

The Companion allows you to control your K2500/K2600/K2661 from your Macintosh. This both saves wear and tear on the K2500/K2600 buttons (which are known to be sensitive) and it allows you to work more efficiently.

Take the simplest task on your Kurzweil. You've just created a new program, or layed down the first track in a sequence. The K2500/K2600 wants a name for this new object, and you sit there for 5 minutes spinning the data wheel or pecking at the keypad to enter "Rad Piano" or "Techno Song".

Forget it! Now just reach over to your Mac keyboard and type on a normal keyboard!

And that's just the start. The Companion allows you to see your K2500/K2600screen remotely, allows you to enter numeric data for things like frequencies, select programs from a complete, searchable list instead of 8 crowded lines, export the list of objects in your machine, and more and more!

The Companion also adds some additional MIDI controllers, a ribbon, an X-Y touchpad, and so on.

And the Companion is growing monthly. We use this at Ravenware to manage our K2500/K2600 in real music production, so when things get in the way of making music we'll improve the Companion to overcome the roadblock.

Brought to you by C.K. Haun and Ravenware Software. The MIDI Companion is free. However, if you would like to support further development and get yourself some interesting music, go listen to our playlist of music from our studio. You can also donate through PayPal, donate to companion@ravenware.com

Setting up

Mac OS X

Mac OS X uses CoreMIDI, so no additional software is required.

Mac OS 9/8/7 To use the Companion, you need to be running OMS. OMS 2.x has been tested and known to work with the Companion. The Companion has also been tested with MOTU's FreeMIDI v. 1.43, in OMS emulation mode.

General Setup You need a MIDI interface connected to your Macintosh, and a MIDI IN and OUT cable to gain the full benefit of the Companion. If you only have a MIDI out, you can control the K2500/K2600 but you will not be able to see the screen.

Important:To control your K2500/K2600, you have to tell the Companion what device ID your K2500/K2600is identifiying itself as. This is set on the MIDI/RECV page (second parameter in the left column) on your 2500/K2600. Be sure the same ID number is entered in the Companion's Preferences dialog box (under the Companion menu in Mac OS X, Edit menu otherwise) to enable communication. Select your 2500/K2600 using the popup menu in the lower left corner of the Control Panel window.

Every Companion window that can send or receive MIDI data has MIDI device popup menu, most are in the lower left, some (the keyboard window, for example) have the popup in the upper left. If you are having difficulty communicating with your 2500/K2600 please double-check that popup.

Control Panel Basics

The Control Panel window has all the basic buttons and switches your K2500/K2600 has on it's front panel. You can select them all with the mouse, just click and it's the same as if you had pressed the corresponding button on the K2500/K2600.

The screen will reflect the K2500/K2600 screen. Be aware that the Companion will sometimes take a second or two to update it's display of the Kurzweil screen. Be patient, the screen refresh rate that we've chosen is the best compromise between keeping you informed and not flooding the MIDI bux, or confusing the Kurzweil.

The Companion does it's best to highlight the screen the same way the K2500/K2600 highlights, but you may find some anomolies.

For one thing, you will never see graphics, the boxes around parameters on the algorhtym pages, for example. Recieving all that graphic information constantly takes too much MIDI data, and your MIDI performance would suffer, so the Companion does not provide that display information. This is not a huge drawback, you can work on almost every screen without that information. However, pages like the MIXER page rely almost completely on the graphics, so they are not usable on the Companion. But by using the "Faders" window in the Companion you'll find that you don't even need them, the Companion is easier!

Customizing the Panel

Don't like the way the buttons are layed out on the control panel? Change 'em! It's a Mac program, isn't it, that means you have control. Just hold down the 'option' and 'command' keys on your keyboard, Button groups (and the echo screen) will then be bordered in grey, click and drag the button group you want to move to the location you want. If you make a mistake, just select 'Reset Control Positions' from the Control Panel submenu under theCompanion Tools menu and the controls will move back to their original positions. If the screen colors are not to your liking, you can change those. Select 'Preferences' from the Edit menuand you'll find three colors to change, the screen background color, the screen text color, and the highlight color. Have fun!

Master Object List Window

The fnext thing you'll want to do is have the Companion ask your 2500/K2600 for a list of all the objects currently in memory.

Go to the Synths menu, mouse down to the Kurzweil item, then to the Open Object Window menu item and select that.

If this is your first tme using the Companion, a window with an empty list will appear. Along the top of the list box is the legend of the things in the list, like name, size, and comments. You'll also notice that the date that the list was last updated is shown there, initially this will say never.

Time to fill the list. Double-check that the menu in the lower left has your Kurzweil selected, and click on Re-read List. Now go get a cup of coffee. The Companion will now ask your Kurzweil for basic information about all the programs, songs, intomation tables, effects, and other objects. This will take some minutes, and it's best to not do anything with your computer or with the Kurzweil while this is happening. Once the COmpanion is done reading your Kurzweil, the list will fill with programs!

This list is very useful. You can quickly and easily have your K2500/K2600 navigate around objects without spinning the control wheel or tapping buttons. Say you're in SONG mode and you want to change the current instrument on a track. On your K2500/K2600, make sure the highlight is on the Program line. Now, on your computer, find the program you want to change to (use the FIND feature under the Edit menu or click the Find button if you want). Click on it to select it. Then either double-click on it or click on the Activate button (or hit the return key on your computer keyboard) and the Companion will tell your K2500/K2600 to go to that program. Very easy!

You can also export the object list. This allows you to put your object list into your favorite word processor, database, or spreadsheet. Select Export from the File menu. You'll then be offered the options of how to save the data. Select the format that best suits your needs. If you create or modify an object on your K2500/K2600, the object list will not know about it unless you tell it to update. If you create a new object, or change the name, please click the 'Refresh' button and the Companion will re-read those objects.

The Master list is unmodifiable. It is not a library or edit window, it's just a list of what's on your K2500/K2600. To create configuration or library files, or to edit an object, you have to create another object list, please see the next help topic for information.

Mac OS X only: The Companion now remembers this list! You do not have to re-read each time you start the program! You only need to re-read the object list if you've changed something on your Kurzweil!

Adding Comments!

You can have hundreds and hundreds of programs loaded in your Kurzweil at one time. It can be very difficult to remember special features of each program, controller settings, effects used, and so on. You can even forget how you feel about a sound, or what it actually sounds like!

Now you can add handy comments to your object list, describing the sound the way you want tto, and have those comments always available where you need them, in the Companion!

This allows you to;

Commenting objects is easy. When you're browsing through the Master Object window and want to add a comment;

Type a new comment, or edit the comment that is already there. The comment will be saved automatically. The next time you scroll to, find, click on, or otherwise highlight that object in the Master Object List the comment will appear. On Mac OS X the comments show up in the correct place in the list. The Companion stores all comments in a file called K2500 Companion Comments in the Preferences folder of your System folder.

Note: To prevent craziness, all comments are limited to 250 characters. If this is a problem for anyone, PLEASE let me know and I'll increase the limit!

Exporting object lists

One of the joys of the K2500/K2600 is the ability to load hundreds and hundreds of programs. However, keeping track of them can be difficult. The Companion allows you to search for and track objects when you're in the Companion environment, but what happens when you switch to your favorite sequencer?

The Companion can help with that also. The Companion can export banks of program names and patch numbers in the formats that Logic Audio and Studio Vision Pro understand. This lets you update your sequencer name tables any time you make a change to your K2500/K2600. Finally, you can set sequence tracks by instrument name!

How to do it

First, let the Companion read all the program names, this is what happens normally during Companion startup. Please keep in mind if you make a program change after the Companion has started you need to use the "refresh" button in the master object window to let the companion re-read the correct names.

Make sure the Master K2500/K2600 object list window is the front window in the Companion.

Select Export from the File menu. A dialog will appear like this

Select File to export to a file, Clipboard to export to the clipboard for pasting into Logic. If you are exporting to a file, you can select the delimeter (comma, tab, or space) that seperates names from sizes, and so on. This has no effect on clipboard exports.

Select the object type you wish to export fromt he bottom popup.

The Companion will export all 100 names of the objects in that bank. If there are empty spaces in the bank, the Companion will add a program called 'no program' to make sure things align.

Switch to your sequencer

In Logic, open your environment document, then double-click on your K2500/K2600 object. Select the correct bank, and choose 'Paste names' from the little popup on the right

In Vision, select Windows->names, then double-click on the 'Patch name document' line next to your K2500/K2600. Then select Patches->Paste Patch Names. Poor Vision is dead for years now, but I'll still keep it in here and hope it comes back.

In Cubase, I have no idea. I don't have Cubase, can't test it out. Try either technique, tell me if either one works.

User Object Lists

Not yet implemented in Mac OS X

Note: Editing features are not ye implemented, the below is included for future reference. Actually I have no idea what the heck this section is supposed to be for, maybe someday I'llfigure it ouut and write that code.

The Companion is also a program (or other object) librarian. You can create sets of objects and save them, then re-upload them to your K2500/K2600 at a later time. You do this by creating a new object window and dragging objects to that window. Select 'New' from the File menu (or hit command-N) and you'll be asked for which type of window you want to create. Select 'Object Window' and click 'Create'. A new, blank list will appear. Now go back to the Master window, and select one or more objects (hold down the shift key while clicking to select more than one object). Now click and hold one of the selected objects, and drag it to the new Object window.That window will now contain a list containing the dragged objects. At this point the Companion will download the data for that object to your computer. You can now save the window.


Later, you can re-open the saved file and a new list will be created containing the saved objects. Hit the 'Send' button in that window and the objects will be sent back to your K2500/K2600. If you want to edit an object, select it and click 'Edit'. An edit window will open up allowing you to edit. Edit, close that window, then you can either save the file again or send the changed object to your K2500/K2600.

Windows and Startup

You can name almost any window anything you want. Use the 'rename window' menu item under the Windows menu to do so. Note that you cannot rename the Master Object List window.You'll notice that some windows appear every time you start up the Companion, while others you have to create or open files to use.There is actually some logic to this!Two windows will always appear, the main Control Panel window and the Master object list. Since these are your main interface to the K2500/K2600, I want you to always have them available without having to do additional work.Controller windows (ribbons, etc.) are re-opened if they were open when you last quit the Companion. This allows you to have a persistent set of controllers, without having to save and open files.Edit windows, windows that operate on object (programs, songs) in the K2500/K2600 are not remembered and re-opened. These windows contain information that is very variable, and may (and will) change in your K2500/K2600 when the Companion is off. You of course have the option to save and re-open these from standard files.

Keyboard control

Clicking with the mouse is fun, but the real joy of the Companion is in using your keyboard!Your Macintosh keystrokes are translated into button actions that the K2500/K2600 understands, so you can actually type things like program names quickly and easily! For example, if you created a program that you wanted to name Horn, you normally would have to press the 3 button twice, the 5 button three times, the 6 button 3 times, and the 5 button twice. Whew, what a pain! With the Companion, just type Horn on your Mac! Much much nicer and faster.

Some Mac keys and command-keys do specific things on the K2500/K2600 to make your life easier. Here is a list of the key equivelents








Back up one in text entry

Arrow Keys

Same as the arrows on the K2500/K2600

Holding down the SHIFT key changes some other actions

SHIFT+data wheel

Value * 10

SHIFT+up/down arrows

Channel/Bank up or down

CONTROL+up/down arrows

same as +/- keys

Data Wheel

The Companion contains a data wheel, just like your K2500/K2600. The wheel is broken up into 6 segments,1,5,10,50,-1,-5,-10,-50. Positive numbers indicate you're turning the wheel clockwise, negative numbers mean counterclockwise. Clicking in any segment transmits that many 'clicks' to the K2500/K2600. So clicking in the '10' segment sends 10 clockwise clicks to the K2500/K2600. Clicking in -5 sends 5 counterclockwise clicks.You can increase the number of clicks with modifier keys. Holding down the 'shift' or 'control' keys and clicking multiplies the click count by ten, so a click in the 50 segment with the shift key held would send 500 clockwise clicks.Holding down both shift and control multiplies by 100. This can be very handy for frequency input and the like. And as mentioned earlier, if you hold down the command and option key you can move the location of the data wheel to configure the panel best for you.


I need to redo this for Mac OS X, just figure it out, the menus ain't hard....

Here is a listing of all the menus and a brief explanation of what they do

File Edit
New Open new object, ribbon, X-Y windows
Open Open a saved object, ribbon, X-Y window
Close Close object, ribbon, X-Y windows. The main Control Panel window cannot be closed
Save Save object, ribbon, X-Y windows
Export Export object lists to text, database, spreadsheet files
Save Controller Set Allows you to save a group of ribbons,X-Y windows as a standard controller set
Page setup Set up printer settings
Print Print an object window
Quit Quit the Companion
Undo Undo some actions
Cut Cut text
Copy Copy text
Paste Paste text
Clear Clear all text
Select All Select all text
Find Find a program name or comment
Find again Find the next program or comment matching the last find
Preferences Bring up the Prefs dialog
Say Highlighted Param If speech active on your Mac, will speak aloud the highlighted parameter
Say Full Screen If speech active on your Mac, speaks all the contents of the current K2500 screen
Say Softbuttons If speech active on your Mac, speaks the current values of the bottom 6 softbuttons on the K2500
Windows Scripts
Stack Windows Re-arranges all open windows so they cascade down in an organized fashion
Rename Window Renames the current window. This name will be remembered the next time you launch
Font size Might set the font size of the front window. I don't know if this works :)
Windows The remaining items allow you to bring forward, or open, any window by selecting it from this menu
Record Record the next series of activities for later replay
Edit scripts Edit saved scripts
Scripts Remaining items are scripts available for replay. Select one to execute the script
MIDI Setup Companion Tools
Oms Studio Setup Launches OMS setup application
OMS MIDI Setup Launches OMS MIDI application
Panic! Sends All Notes Off to your K2500
Open MIDI Monitor Opens the MIDI monitor window. Not implemented
Config MIDI Controllers Allows you to name MIDI controller messages for easier reading and setting in config and log dialogs
Allows you to set parameters and control the currently frontmost window
Control Panel submenu Remaining Tools menus
Reset Control positions If you have re-arranged the front panel controls, this resets them to the stock positions
Refresh Screen Forces Companion to re-read and display the K2500 screen
Turn off screen reading Stops the Companion from polling the K2500 for screen data.
Allow you to configure the frontmost window



Not yet implemented in Mac OS X. Does anyone want it in Mac OS X? Tell me.

Have actions you do all the time? Sets of keystrokes, ribbon moves, and such that you get tired of entering manually all the time?

The Companion lets you mechanize those tasks by recording scripts. You can choose to record your Companion actions (button presses, ribbon moves, and so on) in a script when you perform them then play that script back any time you want. Scripts can be one-time events, or can repeat indefinitly.

This can be very handy for tedious repeated key strokes needed to, for example, apply the same fillter setting to all 32 layers of a drum program.

Recording a script: To record a script, select "Record" from the Script menu (or hit command-R). Do the actions you want to do again in the future. When you are done with the script you want, select "Stop Recording" from the Scripts menu (or hit command-R again). You will be asked for a few things. First, name your script. You can then select a hot key from 0-9 to allow you to trigger the script from the keyboard.

There is often a delay between when you hit "Record" and when you perform the first action you want recorded. It takes time to move the mouse from the menu, or to key the right keys. That lag is recorded in your script. If you want playback of that script to ignore the initial lag, check the " No delay before first event on playback" checkbox. This will eliminate the first delay, while maintaining timing between the rest of the events.

The second checkbox allows you to have a script repeat. Some scripts (like keystrokes to get to the Program page) are one-shots, you just want the script to play once. Others may not be. You may have an aux bend ribbon sweep that you want to repeat over and over while you're playing, for example. If that is the case, check "Script repeats until cancelled".

If everything is fine, hit OK (if not, hit cancel and your script will not be saved). The script name is added to the bottom of the Scripts menu, ready for use.

Playing a script: To play a script, select the script name from the Scripts menu (or if you chose a hot key for that script hit command-(number) to execute. The script will play.

While the script is playing a dialog box will be presented on the screen telling you a script is playing, and what the name of that script is.

If you have any problems with the script OR if the script is a script that is meant to repeat, you can stop the script from playing at any time by clicking on the "Cancel Script" button.

NOTE: Hitting "Cancel Script" is the only way to stop a script that you saved with the "script repeats" button checked!

Managing Scripts: If you want to delete a script or change a scripts's name, select "Edit Scripts" from the Script menu. A window will open, seletc a script and rename it using the bottom edit line and hitting "apply" or delete a script by selecting the script and hitting "delete".

Saving Scripts: Any script you create will be automatically saved to your Preferences file when you quit the Companion. It will reload and be available for you the next time you launch.

More coming! Obviously scripting is very powerful. Watch this space for more features!

Tech detail: Scripts are not synced to MIDI currently. They are timed based on the unsynced SMPTE timer. Tell me how you want script syncing to happen. Tell me how you want triggering to occur.


The Preferences dialog (select 'Preferences' under the Edit menu, Apple Menu in Mac OS X) allows you to set some Companion-wide settings. Mac OS X has a paned Preference dialog, only the Application and Kurzweil panes have items.

´ Automatically send a right-arrow after a letter key (a-z) Kurzwiel pane

Default is checked. This setting tells the companion to advance to the next position after sending a letter. This allows you to type program names normally at your Mac keyboard, instead of having to type a letter, hit right arrow, type a letter, hit right arrow, etc.

´ Always send keystrokes to K2500 no matter what window is frontmost Not in Mac OS X

Default is NOT checked. Normally, the Companion will only send Mac keystrokes to the K2500/K2600 when the Control Panel window is frontmost. Check this box and all keystrokes will also go to the Companion, even if a ribbon window, object window, etc. is in front.

´ Remember window positions Application pane

Default is checked. This tells the Companion to remember where you position windows during a session, and put windows back in the same positions when you launch the COmpanion the next time.

´ K2500 SysEx ID (the SysEx ID parameter from the MIDI Receive page, default is 0) Kurzwiel pane

This number must match the number on the K2500 MIDI Receive page for the Companion to be able to communicate with your Mac.

´Event Window Colors Application Pane allows you to set the column colors in the MIDI event log pane

Kurzweil Colors Kurzwiel pane

This sets the Control Panel and Object List colors. Default is Kurz colors, white and blue. This allows you to set the display screen on the Companion to different colors if you like. You might want black and white for easier readability, for example.

´ MIDI Data log buffer size (3000-20000) Application Pane

Default is 3000. The size of the MIDI data log buffer, how many events are remembered in the MIDI data log.

´ Turn off button press click sound Kurzwiel pane

Default is off. The Companion makes a 'click' sound when you press a Control Panel window button so you know the button has been pressed, audio confirmation that something has happened. Turn off if it's too annoying.

´ Speak buttons Kurzwiel pane

Default is off. These two buttons are designed to enable visually impared musicians to work much more easily with their Kurzweil. Check 'Speak keypresses', and the Companion will speak the button presses you make and will speak when you move the mouse pointer over a button. Check 'Speak button rollover' and the Companion will speak a button name when a mouse pointer moves over the button, letting you know you can now click and send that button message to your Kurzweil.

´ OK

Accepts the current settings

´ Cancel

Closes dialog making no changes

´ Revert

Sets preferences to the standard settings.


Being a musician, or a computer user, does not require you to see. We all know of many sightless musicians, and how successful they can be.

The MIDI Companion has speech features that will allow a sightless or visually impared musician to use his or her K2500/K2600 even more easily.

The Companion will read the K2500/K2600 screen out loud upon request. You can ask for the entire contents of the screen to be read, or just the currently hilited parameter. Additionally, you can have the MIDI Companion speak the keypresses you are making to insure that you are making the appropriate strokes.

Note:Mac OS X contains speech synthesis by default, you don't need to do anything. For Mac OS 9 and earlier, you must have Macintalk installed and active for this feature of the Companion to function. A standard install of Sytem 8 or 9 does this, but that should be the first thing you check if you encounter difficulties.

Screen Speaking: To read the current K2500/K2600 display screen, select "Say full screen" from the Edit menu, or press command-1 on Mac OS X or command-] (command-close bracket) on Mac OS 9. The entire screen will be read aloud. Please note that many of the items displayed on the K2500/K2600 screen are abbreviated or specialized music terms, so Macintalk may spell (instead of reading as a complete word) some items.

The Control Panel window does not have to be frontmost to read the screen.

Parameter Speaking: To have the currently highlighted parameter read to you (like the currently selected instrument in Program mode) select "Say Hilited Item" from the Edit menu, or press command-2 (X) command-U(9/8/7). The hilited parameter will be spoken.

This operation does depend on the frontmost window. If the control panel window is frontmost, the hilited parameter on the K2500/K2600 screen will be spoken. If an Obejct List is frontmost, the highlighted object in the window will be spoken. Try it, you'll find it makes sense.

Softbutton Speaking: An additional area of the screen that can be read aloud is the titles of the 6 soft buttons. Select command-3 (X) or command-[ (9/8/7)and the bottom line of the K2500/K2600 will be spoken.

Button press speaking: The Companion will speak the names of the buttons you are pressing if you so choose. To enable this feature, open the Preferences dialog and check the checkbox titled "Speak keypresses".

Button rollover: The companion can also let you know when your mouse is over a particular control. In the Preferences dialog, check the "Speak button rollover" checkbox to enable this feature. Now, whenever your mouse travels over on of the control buttons on the Companion control panel, the name of that button will be spoken aloud.

Ribbon Controller basics

Not yet implemented in Mac OS X Don't know if you want it

The Companion allows you to have a ribbon controller on your Mac. But the ribbon controller in the Companion is even more powerful, because it can send up to five different controller messages on five different channels at once!The ribbon controller is set up to act just like the K2500/K2600 main ribbon, but it doesn't have to! You can customize it in many ways, and can use it to control other instruments, see the next help panel for more details.To use the Ribbon, just click the mouse and slide along the ribbon. By default the Ribbon sends pitchbend (AuxBend1), with a value of 64 in the middle, 0 on the left side, and 128 on the right.You can select the MIDI channel you're sending on see advanced settings.The controller message being sent is in the box next to the arrows, and the range of MIDI values sent (see advanged options) is in the next box. The final bottom box shows the MIDI value being sent.You can also control the ribbon with the keyboard, the arrow keys move the bug. A single left arrow moves 1 left, for example. Holding down the Command key and hitting the arrow sends 10 left, option 20, command-option 50, command-option-shift 100. Of course, if you're set to spring back this is just a very quick action, if you have springback off (see advanced options) then this can give you very fine control.

Customizing the Ribbon

Not yet implemented in Mac OS X

You can set many Ribbon paramters.

To customize a ribbon, make sure the ribbon you want to work with is the frontmost window, then select Configure Ribbon from the Companion Tools menu. A dialog will appear showing the ribbon options.

The Show increments checkbox, if checked, will cause the steps in the ribbon to be shown in the ribbon window.

Low value and High value allow you to specify the lowest MIDI number and the highest MIDI number that will be sent when you slide the bug full left or full right.


The next set of controls allows you to specify what controllers, how many controllers, and what channels you would like to send controller messages on.

There are five lines of these controls, since each ribbon can send up to 5 different controllers at a time.

The leftmost checkbox tells the ribbon that you want to send the controller information specified on this line.

Next is a popup menu that allows you to select the controller that you want to send. Many standard ones (like volume, pan, Aux Bend) are already included, if you want to send one of those just select it in the menu.

If the controller you want to send does NOT appear, you have two choices;

1) Enter the MIDI controller number in the edit line that follows the words MIDI value. The popup will change to other, and the controller number you typed in will be sent.

2) Change the popup contents. Under the MIDI Setup menu is an item titled MIDI controller setup. This allows you to add your own controllers to the popup. There is more help on this in this help section, choose MIDI controller setup from the list at the left for more detailed information.


The next checkbox indicates if this is a binary, on/off controller. If you check this, the value sent for this controller when you click in the ribbon will be greater than 64, no matter where in the ribbon you click. When you release the ribbon, a zero will be sent. This allows you to send switch-type messages from the ribbon if you wish.


The final edit box on the line is the channel number. Enter what MIDI channel you want to send this message on.


Click OK to accept these settings, cancel to ignore any changes. If you made changes and want to start again without closing the dialog, press revert.


Note that you can also change the title of the window (change the title to Volume, for example, if it sends volume messages). However you will do this from the Rename window item under the Windows menu.

X-Y Controller

Not yet implemented in Mac OS X

The X-Y controller works like a joystick. It works in the horizontal direction just like the ribbon, but it also tracks changes in vertical position and sends different MIDI messages.\nThis allows you to send, for example, mod wheel and volume messages at the same time, but with different values. Just assign mod wheel to the horizontal parameter and volume to the vertical, and move the bug like a joystick.\n\nConfiguration is identical to the ribbon, you can send up to 5 messages on each axis to different MIDI channels. The only difference in the setup dialog is the addition of two radio buttons which tell the XY Window if you are currently configuring the horizontal or vertical parameters.


The Companion will create a variety of files to help you save and manage your work.

Mac OS 9

Mac OS X These files are created in the <your hard drive>/Library/Application Support/Ravenware directory:

This file is created in <username>/Library/Preferences

If you experience weird behaviour (the application's behaviour, not yours) feel free to quit the companion, find, and delete these files and restart.

Note: DO NOT delete these files with the Companion running!


Three basic faults are the most common when using the Companion, no MIDI loop, incorrect device ID, and no device selected. Please check these first before tearing your hair out.

No MIDI Loop

There needs to be a complete MIDI round-trip to use all of the features of the Companion. Sounds simple, but in a complex studio with muliple synths, rack modules, effects boxes, MIDI routers, and so on this can cause odd problems. Be certain that there is a connection from the MIDI OUT connector on your computer MIDI interface to the MIDI IN on the K2500/K2600, and a connction between the MIDI OUT connector on the K2500/K2600 back to the MIDI IN port on your computer MIDI interface. If you have a complex studio and are having problems, take a moment to untangle your cables and go straight from your Mac to the K2500/K2600. If that works then something in your MIDI setup is blocking the flow. As we know from experience, some synths don't pass data through, some routing boxes can get misconfigured.

Incorrect Device ID

Be certain that the Device ID on your K2500/K2600 and the SysEx ID the Companion is using are the same. On your K2500/K2600, hit MIDI, then hit the RECV soft button. The top parameter in the right column is the current SysEx ID that your K2500/K2600 expects to get SysEx data identified with. The Companion needs to know this number, pull down the Edit menu and select Preferences. Make sure the K2500/K2600 SysEx ID edit box has the same number that you see on the MIDI receive page.

No Device Selected

Every Companion window that can send or receive MIDI data has an OMS device popup menu, most are in the lower left, some (the keyboard window, for example) have the popup in the upper left. If you are having difficulty communicating with your K2500/K2600 please double-check that popup.

Other hints

If you have a massive amount of programs or songs on your K2500/K2600, memory may get tight on the Companion. I tried to strick a balance between useful and not being a memory hog, but I might not have made the Companion big enough. If you run out of memory or if you don't get full object list dumps, increase the memory requirements for the Companion. Quit the Companion, select it's icon in the Finder, and select "Get Info" from the File menu. You can adjust the memory requirements from there.

MIDI timing. The Companion asks for a lot of data. MIDI is slow, and there is a chance that the Companion may miss some MIDI data on an object list dump. If a list isn't full, just try again

Known Bugs

No highlighted selection. OK, I hate this one. Sometimes (particularly in Program mode) the selected parameter will not be highlighted on your Mac screen. Sorry. I don't know why, I've been trying to fix this for months. I'll figure it out someday, don't report it as a bug because I know, and it drives me just as crazy as you.

Wrong parameter highlighted - OK, one I can't fix. There are times when I will highlight the wrong parameter. An example: If you're in Program Edit mode and are in the wiring diagram, and you have two low pass filters in two different boxes, I cannot tell which one to highlight, I use a hueristic (that's computer talk for "I guess"). There is just no way, with the data I can pull from the K2500/K2600, for me to know exactly which one is the one you really have highlighted. Sorry, wish I could. I have passed my requests on to the Kurzweil team. Don't expect a change, I would prefer they spend their time on the music engine, not on external control MIDI dumps, wouldn't you? If they get to it, fine.


Program design and implementation by C.K. Haun <TR>, ck@ravenware.com
Graphics by Dejah Tallen, princess@ravenware.com

Inspired, creative, and moving documentation and help text by Alex Kinnison, ALX@ravenware.com

Particular thanks to Kurzweil for excellent documentation on their SysEx implementation!

Thanks to OpCode for having a *real* open MIDI system!
And thanks to Doug for getting Mac OS X's MIDI to be even better!

Tolerance for putting up with C.K. working on this all the time to Karen.
Cat hair on the keyboard by Fred and Pachè.
Programmed on a Mac Quadra 700, PowerMac 8600/300, PowerMac G3, Powerbook G3, and PowerBook G4 in MPW C, SC and Xcode.

The MIDI Companion is free. The copyright is maintained by C.K. Haun. No redistribution for profit is allowed. We watch the web rather closely for this. FYI, My sister, Dr. Stephanie Haun, is a professor of Patent and Intellectual Property law, and a practicing lawyer. Get the point?

We would appreciate it if you would;

  1. Give feedback, we are pretty good about implementing user suggestions, and we will always fix bugs (if we can figure them out!).
  2. Make interesting music.

Thanks - The gang at Ravenware Software

Paying for the Companion

Again, the Companion is free. But some people feel they get a great deal of value, and want to pay even though we don't want anything.

But we appreciate the value we provide and you percieve, so you can do one of two things if you really like it

  1. If you really really want to give cash, go to PayPal and send money to the email account address ck@ravenware.com

last updated 22 February 2004 ak